In recent years, network technologies for searching for a device that provides predetermined services on a network have been developed. One such technology is UPnP, or Universal Plug and Play (for example, UPnP Device Architecture Version 1.0, 8 Jun. 2000).
In UPnP, “service”, “device” and “control point” are predefined. A “service” is a logical unit that provides a predetermined service, a “device” is a logical unit that has one or more services, and a control point is a logical unit that controls one or more services. Hereinafter, a device prescribed by UPnP is called a “UPnP device”, a control point prescribed by UPnP is called a “UPnP control point” and a network prescribed by UPnP is called a “UPnP network”.
With UPnP, transmission of a SSDP:ALIVE message (that is, a message indicating that a UPnP device is present on the UPnP network), a SSDP:BYEBYE message (a message indicating that a UPnP device is separating or escaping from the network) and the like is carried out using SSDP (Simple Service Discovery Protocol).
Moreover, in UPnP, it is prescribed that information unique to a UPnP device (hereinafter device specific information) and information unique to a service (hereinafter service-specific information) be written in XML (Extensible Markup Language). It should be noted that a UUID (Universally Unique Identifier) that is an identifier unique to the UPnP device, the device specific information, and the service-specific information can be obtained using the SSDP:ALIVE message. The UPnP control point continues to hold such information until a period of time that the SSDP:ALIVE message specifies elapses (1800 seconds or 30 minutes or more) or until receipt of the SSDP:BYEBYE message.
FIG. 9 is a diagram illustrating a defect in the current UPnP discovery protocol.
In step 901, the UPnP control point transmits a SUBSCRIPTION message to a UPnP device having a service A.
In step 902, the UPnP device, having received the SUBSCRIPTION message, renders the eventing of service A valid (ON). When the service A eventing is valid, each time the UPnP device detects a change of status of service A the UPnP device notifies the UPnP control point of that change in service status.
In step 903, the UPnP device, before the previously set cache time period elapses, transmits in multicast an SSDP:ALIVE message setting the next cache period. By transmitting the SSDP:ALIVE message, the UPnP device can announce that it is participating in the UPnP network.
In step 904, the UPnP device transmits a SSDP:BYEBYE message in multicast before separating from the UPnP network. However, FIG. 9 presumes a state in which the SSDP:BYEBYE message is not transmitted from the UPnP device, or the SSDP:BYEBYE message does not reach the UPnP control point. Such a state arises when, for example, (1) the battery for the UPnP device is removed by the user before the SSDP:BYEBYE message is transmitted, (2) the UPnP device is moved beyond communication range before the SSDP:BYEBYE message is transmitted, or (3) communication conditions are poor. In these cases, the UPnP control point continues to hold the device specific information of the UPnP device because the UPnP device cannot detect the separation of the UPnP network from the UPnP network.
In step 905, the UPnP device separates from the UPnP network.
In step 906, the UPnP device renders eventing invalid (OFF).
In step 907, the UPnP device again participates in the UPnP network before the cache time period established in step 903 elapses.
In step 908, the UPnP device transmits in multicast an SSDP:ALIVE message designating cache time period. At this time, the UPnP control point, because it receives the SSDP:ALIVE message without receiving the SSDP:BYEBYE message, cannot know that the UPnP device has once separated from the UPnP network. That is, the UPnP control point thinks that the UPnP device continues to participate in the UPnP network without having once separated therefrom.
In step 909, the UPnP device changes the status of service A according to the instructions from the user.
In step 910, the UPnP device, having once again reconnected to the UPnP network, cannot transmit an EVENT message to the UPnP control point even if there is a change in the status of the service A because the service A eventing is not rendered valid (ON).
In step 911, the UPnP control point, without being able to receive an EVENT message from the UPnP device, cannot perceive the UPnP device status change. As a result, the status of the service A managed by the UPnP control point and the actual status of service A no longer match, and the UPnP control point becomes unable to control service A properly. This sort of problem arises because the SSDP:BYEBYE message that the UPnP device transmits when separating from the UPnP network did not reach the UPnP control point.